-- Copyright (c) 2024 Huawei Technologies Co., Ltd.
-- openUBMC is licensed under Mulan PSL v2.
-- You can use this software according to the terms and conditions of the Mulan PSL v2.
-- You may obtain a copy of Mulan PSL v2 at:
--         http://license.coscl.org.cn/MulanPSL2
-- THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
-- EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
-- MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
-- See the Mulan PSL v2 for more details.
--
-- Create: 2025-7-21
-- Description: common interfaces.

local module = {}
module.__index = module

-- 校验和
function module.get_checksum(str)
    local checksum = 0
    local byte
    for i = 1, #str do
        byte = string.byte(str, i)
        checksum = checksum + byte
    end

    return checksum % 256  -- 和256进行运算保证位不丢失
end

-- 返回前缀
function module.get_prefix(str, char)
    local index = string.find(str, char)
    if index then
        return string.sub(str, 1, index - 1)
    else
        return str
    end
end

return module